package cn.azzhu.mapper;

import cn.azzhu.bean.Product;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author azzhu
 * @create 2020-08-12 09:47:05
 */
public interface ProductMapper {

    /**
     * 根据商品id返回单个商品
     * @param pid
     * @return
     */
    Product getById(String pid);

    /**
     * 获取所有商品
     * @return
     */
    List<Product> getProducts();

    /**
     * 新增一个商品
     * @param product
     */
    void addProduct(Product product);

    /**
     * 删除一个商品
     * @param pid
     */
    void delById(String pid);

    /**
     * 修改商品信息
     * @param product
     * @return
     */
    int update(Product product);

    List<Product> getProdsByMap(Map<String,Object> map);

    int getTotal(@Param("pname") String pname, @Param("page") int pageSize);

    /**
     * 获取所有商品
     * @return
     */
    List<Product> getProductsByConditions(@Param("pname") String pname);

    /**
     * 需求：pname只要不null或者不为“”，我们就根据条件模糊查询
     *      若没有给我们就查询所有
     * @param pname
     * @return
     */
    List<Product> getProdsByIf(@Param("pname") String pname);

    void updateBySet(Product product);

    /**
     * 演示sql片段
     * @param map
     * @return
     */
    int getTotalBySql(Map<String,Object> map);

    /**
     * 是否foreach进行批量删
     * @param pids
     * @return
     */
    List<Product> batchSelect(List<String> pids);
}
